package com.yxx.service;

import com.yxx.entityModel.vo.Result.PageResult;
import com.yxx.entityModel.vo.query.ArticleConditionQuery;
import com.yxx.entityModel.vo.query.CategoryQuery;
import com.yxx.entityModel.vo.request.CategoryRequest;
import com.yxx.entityModel.vo.response.ArticleConditionListResponse;
import com.yxx.entityModel.vo.response.CategoryBackResponse;
import com.yxx.entityModel.vo.response.CategoryOptionResponse;
import com.yxx.entityModel.vo.response.CategoryResponse;

import java.util.List;

/**
 * @author yuxiangxun
 * @date 2025/2/3
 * @apiNote
 */
public interface CategoryService {
    /**
     * 查看后台分类列表
     * @param categoryQuery
     * @return
     */
    PageResult<CategoryBackResponse> categoryBackResponseList(CategoryQuery categoryQuery);

    /**
     * 添加分类
     * @param categoryRequest
     */
    void addCategory(CategoryRequest categoryRequest);

    /**
     * 删除分类
     * @param categoryIdList
     */
    void deleteCategory(List<Integer> categoryIdList);

    /**
     * 修改分类
     * @param category
     */
    void updateCategory(CategoryRequest category);

    /**
     * 查看分类选项
     * @return
     */
    List<CategoryOptionResponse> categoryOptionList();

    /**
     * 查看分类列表
     * @return
     */
    List<CategoryResponse> categoryListVO();

    /**
     * 查看分类下的文章
     * @param articleConditionQuery
     * @return
     */
    ArticleConditionListResponse articleCategoryList(ArticleConditionQuery articleConditionQuery);

}
